using UnityEngine; namespace TMPro.Examples { public class TMP_TextEventCheck : MonoBehaviour { public TMP_TextEventHandler TextEventHandler; private TMP_Text m_TextComponent; void OnEnable() { if (TextEventHandler != null) { // Get a reference to the text component m_TextComponent = TextEventHandler.GetComponent<TMP_Text>(); TextEventHandler.onCharacterSelection.AddListener(OnCharacterSelection); TextEventHandler.onSpriteSelection.AddListener(OnSpriteSelection); TextEventHandler.onWordSelection.AddListener(OnWordSelection); TextEventHandler.onLineSelection.AddListener(OnLineSelection); TextEventHandler.onLinkSelection.AddListener(OnLinkSelection); } } void OnDisable() { if (TextEventHandler != null) { TextEventHandler.onCharacterSelection.RemoveListener(OnCharacterSelection); TextEventHandler.onSpriteSelection.RemoveListener(OnSpriteSelection); TextEventHandler.onWordSelection.RemoveListener(OnWordSelection); TextEventHandler.onLineSelection.RemoveListener(OnLineSelection); TextEventHandler.onLinkSelection.RemoveListener(OnLinkSelection); } } void OnCharacterSelection(char c, int index) { Debug.Log("Character [" + c + "] at Index: " + index + " has been selected."); } void OnSpriteSelection(char c, int index) { Debug.Log("Sprite [" + c + "] at Index: " + index + " has been selected."); } void OnWordSelection(string word, int firstCharacterIndex, int length) { Debug.Log("Word [" + word + "] with first character index of " + firstCharacterIndex + " and length of " + length + " has been selected."); } void OnLineSelection(string lineText, int firstCharacterIndex, int length) { Debug.Log("Line [" + lineText + "] with first character index of " + firstCharacterIndex + " and length of " + length + " has been selected."); } void OnLinkSelection(string linkID, string linkText, int linkIndex) { if (m_TextComponent != null) { TMP_LinkInfo linkInfo = m_TextComponent.textInfo.linkInfo[linkIndex]; } Debug.Log("Link Index: " + linkIndex + " with ID [" + linkID + "] and Text \"" + linkText + "\" has been selected."); } } }